package managedBean;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

@ManagedBean
public class AutenticadorBean implements Serializable {

	private static final long serialVersionUID = 1836906534070021901L;

		private static Map<String, String> mapa = new HashMap<String, String>();
		
		private String usuario;
		private String senha;
		
		static{
			mapa.put("k19","k19");
			mapa.put("rafa","123");
		}
		
		public String efetuarLogin(){	
			FacesContext fc = FacesContext.getCurrentInstance();
			System.out.println("Logando...");
			if (AutenticadorBean.mapa.containsKey(this.usuario) && AutenticadorBean.mapa.get(this.usuario).equals(this.senha)) {
				
				ExternalContext ec = fc.getExternalContext();
				HttpSession session = (HttpSession) ec.getSession(false);
				session.setAttribute("usuario", this.usuario);
				String id = session.getId();
				
				System.out.println("Login OK! - ID da Sessao: "+id);
				return "/index";
			}else{
				System.out.println("Login falhou .....");
				return "/login";
			}
		}
		
		public String efetuaLogoff() {
			 FacesContext fc = FacesContext.getCurrentInstance();
			 ExternalContext ec = fc.getExternalContext();
			 HttpSession session = (HttpSession) ec.getSession(false);
			 session.removeAttribute("usuario");
			 //session.invalidate();// Invalida a sessao trocando ela de nome
			 return "/login";
		 }

		
		//Getters and Setters
		public String getUsuario() {
			return usuario;
		}

		public String getSenha() {
			return senha;
		}

		public void setUsuario(String usuario) {
			this.usuario = usuario;
		}

		public void setSenha(String senha) {
			this.senha = senha;
		}
}
